﻿using System;
using System.Collections.Generic;
using OpenTK;
using OpenTK.Graphics.OpenGL;
using OpenTK.Graphics;

namespace SOM.Model
{
    class MdNeuron
    {
        private CSVector featureVector;
        private List<MdNeuron> directNeighbors;
        private Vector3d neuronCoord;
        private bool visited;

        public bool Visited
        {
            get { return visited; }
            set { visited = value; }
        }

        public MdNeuron(Vector3d v)
        {
            this.visited = false;
            this.neuronCoord = v;
            this.directNeighbors = new List<MdNeuron>();
            this.featureVector = new CSVector();
        }

        public void randInitFeatureVector(int size, int max_range)
        {
            this.featureVector.InitRandom(size, max_range);
        }

        public List<MdNeuron> getDirectNeighborsList()
        {
            return this.directNeighbors;
        }

        public Vector3d getNeuronCoordinates()
        {
            return this.neuronCoord;
        }

        public CSVector getCSVector()
        {
            return this.featureVector;
        }

        public void AddNeighboor(MdNeuron neuron)
        {
            directNeighbors.Add(neuron);
        }

    }
}
